/*
 * File Name：ActivityInterface.java
 * Copyright：Copyright 2008-2015 CiWong.Inc. All Rights Reserved.
 * Description： ActivityInterface.java
 * Modify By：res-jxliu
 * Modify Date：2015年3月21日
 * Modify Type：Add
 */
package com.ciwong.mobilelib.i;

import android.app.Activity;
import android.graphics.drawable.Drawable;

/**
 * activity 接口
 * 
 * @author res-jxliu
 * @version ciwong v.1.0 2015年3月21日
 * @since ciwong v.1.0
 */
public interface ActivityInterface
{
    /**
     * 设置activity的tag（主要用于标示一个activity被打开多次）
     * 
     * @param tag
     *            标示
     */
    void setTag(String tag);

    /**
     * 获取activity的tag（主要用于标示一个activity被打开多次）
     * 
     * @return activity的tag
     */
    String getTag();

    /**
     * 从activity管理器中获取activity
     * 
     * @param clsName
     *            类名
     * @param tag
     *            activity标示
     * @return 返回从activity管理器中获取activity
     */
    Activity getActivity(String clsName, String tag);

    /**
     * 设置标题
     * 
     * @param title
     *            标题
     */
    void setTitleText(String title);

    /**
     * 设置标题
     * 
     * @param resId
     *            标题
     */
    void setTitleText(int resId);

    /**
     * 
     * 隐藏标题
     */
    void hideTitleBar();

    /**
     * 设置返回按钮的文字
     * 
     * @param resId
     *            文字id
     */
    void setBackText(int resId);

    /**
     * 
     * 设置返回按钮的文字
     * 
     * @param text
     *            文字串
     */
    void setBackText(String text);

    /**
     * 显示左边的进度条
     * 
     * @param text
     *            进度条文字提示
     */
    void showLeftProgressBar(String text);

    /**
     * 显示中间的进度条
     * 
     * @param text
     *            进度条文字提示
     */
    void showMiddleProgressBar(String text);

    /**
     * 显示右边的进度条
     * 
     * @param text
     *            进度条文字提示
     */
    void showRightProgressBar(String text);

    /**
     * 设置右边按钮的文字
     * 
     * @param resId
     *            文字资源ID
     */
    void setRightBtnText(int resId);

    /**
     * 设置右边按钮的文字
     * 
     * @param text
     *            文字串
     */
    void setRightBtnText(String text);

    /**
     * 设置右边按钮的监听
     * 
     * @param listener
     *            监听
     */
    void setRightBtnListener(ViewOnClickListener listener);

    /**
     * 设置右边按钮的背景
     * 
     * @param drawable
     *            背景
     */
    void setRightBtnBG(Drawable drawable);

    /**
     * 设置右边按钮的背景
     * 
     * @param resId
     *            资源id
     */
    void setRightBtnBG(int resId);

    /**
     * 获取当前登录用户信息
     * 
     * @return 当前登录用户
     */
    // UserInfo getUserInfo();

    /**
     * 获取应用程序tag
     * 
     * @return 应用程序tag
     */
    String getApplicationTag();

    /**
     * 
     * 执行数据库线程
     * 
     * @param task
     *            线程对象
     * @param period
     *            优先级{@link ThreadTask.ThreadPeriod.PERIOD_LOW},
     *            {@link ThreadTask.ThreadPeriod.PERIOD_LOW},
     *            {@link ThreadTask.ThreadPeriod.PERIOD_HIGHT}
     */
    void executeDBThread(Runnable task, int period);

    /**
     * 
     * 执行其他线程
     * 
     * @param task
     *            线程对象
     * @param period
     *            优先级{@link ThreadTask.ThreadPeriod.PERIOD_LOW},
     *            {@link ThreadTask.ThreadPeriod.PERIOD_LOW},
     *            {@link ThreadTask.ThreadPeriod.PERIOD_HIGHT}
     */
    void executeOtherThread(Runnable task, int period);

}
